找传奇、传世资源到传世资源站!

android 百度地图定位实例源码下载

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

package org.zsl.android.map;import android.app.Activity;import android.os.Bundle;import android.util.Log;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.MapStatusUpdate;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.model.LatLng;public class MainActivity extends Activity {public MapView mapView = null;public BaiduMap baiduMap = null;// 定位相关声明public LocationClient locationClient = null;//自定义图标BitmapDescriptor mCurrentMarker = null;boolean isFirstLoc = true;// 是否首次定位public BDLocationListener myListener = new BDLocationListener() {@Overridepublic void onReceiveLocation(BDLocation location) {// map view 销毁后不在处理新接收的位置if (location == null || mapView == null)return;MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(100).latitude(location.getLatitude()).longitude(location.getLongitude()).build();baiduMap.setMyLocationData(locData);//设置定位数据if (isFirstLoc) {isFirstLoc = false;LatLng ll = new LatLng(location.getLatitude(),location.getLongitude());MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16);//设置地图中心点以及缩放级别//MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);baiduMap.animateMapStatus(u);}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 在使用SDK各组件之前初始化context信息,传入ApplicationContext// 注意该方法要再setContentView方法之前实现SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.main_activity);mapView = (MapView) this.findViewById(R.id.mapView); // 获取地图控件引用baiduMap = mapView.getMap();//开启定位图层baiduMap.setMyLocationEnabled(true);locationClient = new LocationClient(getApplicationContext()); // 实例化LocationClient类locationClient.registerLocationListener(myListener); // 注册监听函数this.setLocationOption();//设置定位参数locationClient.start(); // 开始定位// baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); // 设置为一般地图// baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); //设置为卫星地图// baiduMap.setTrafficEnabled(true); //开启交通图}// 三个状态实现地图生命周期管理@Overrideprotected void onDestroy() {//退出时销毁定位locationClient.stop();baiduMap.setMyLocationEnabled(false);// TODO Auto-generated method stubsuper.onDestroy();mapView.onDestroy();mapView = null;}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();mapView.onResume();}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();mapView.onPause();}/** * 设置定位参数 */private void setLocationOption() {LocationClientOption option = new LocationClientOption();option.setOpenGps(true); // 打开GPSoption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);// 设置定位模式option.setCoorType("bd09ll"); // 返回的定位结果是百度经纬度,默认值gcj02option.setScanSpan(5000); // 设置发起定位请求的间隔时间为5000msoption.setIsNeedAddress(true); // 返回的定位结果包含地址信息option.setNeedDeviceDirect(true); // 返回的定位结果包含手机机头的方向locationClient.setLocOption(option);}}

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复